home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX Base Documentation 1998 November
/
IRIX 6.5.2 Base Documentation November 1998.img
/
usr
/
share
/
catman
/
p_man
/
cat3
/
standard
/
sqrt.z
/
sqrt
Wrap
Text File
|
1998-10-30
|
6KB
|
133 lines
SSSSQQQQRRRRTTTT((((3333MMMM)))) SSSSQQQQRRRRTTTT((((3333MMMM))))
NNNNAAAAMMMMEEEE
sqrt, fsqrt, sqrtf, sqrtl, cbrt, cbrtl - cube root, square root
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
####iiiinnnncccclllluuuuddddeeee <<<<mmmmaaaatttthhhh....hhhh>>>>
ddddoooouuuubbbblllleeee ssssqqqqrrrrtttt((((ddddoooouuuubbbblllleeee xxxx))));;;;
ffffllllooooaaaatttt ffffssssqqqqrrrrtttt((((ffffllllooooaaaatttt xxxx))));;;;
ffffllllooooaaaatttt ssssqqqqrrrrttttffff((((ffffllllooooaaaatttt xxxx))));;;;
lllloooonnnngggg ddddoooouuuubbbblllleeee ssssqqqqrrrrttttllll((((lllloooonnnngggg ddddoooouuuubbbblllleeee xxxx))));;;;
ddddoooouuuubbbblllleeee ccccbbbbrrrrtttt((((ddddoooouuuubbbblllleeee xxxx))));;;;
lllloooonnnngggg ddddoooouuuubbbblllleeee ccccbbbbrrrrttttllll((((lllloooonnnngggg ddddoooouuuubbbblllleeee xxxx))));;;;
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
The single-precision and long double-precision routines listed above are
only available in the standard math library, -_l_m, and in -_l_m_x.
The _s_q_r_t functions return the nonnegative square root of their single
argument _x. The function _s_q_r_t both accepts and returns values of type
double. The functions _f_s_q_r_t and _s_q_r_t_f accept and return float values.
The function _s_q_r_t_l both accepts and returns values of type long double.
A fast version of _s_q_r_t and _f_s_q_r_t which are slightly less accurate are
available in the library -_l_f_a_s_t_m. On mips2 and newer processors, those
routines are identical to the ones in libm.a, because there are hardware
square root instructions.
The _c_b_r_t functions return the cube root of their single argument _x. The
function _c_b_r_t both accepts and returns values of type double. The
function _c_b_r_t_l both accepts and returns values of type long double.
DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
In the diagnostics below, functions in the standard math library _l_i_b_m._a,
are referred to as -_l_m versions, those in math library _l_i_b_m_x._a are
referred to as -_l_m_x versions, and those in the the BSD math library
_l_i_b_m_4_3._a are referred to as -_l_m_4_3 versions. The -_l_m and -_l_m_x versions
always return the default Quiet NaN and set _e_r_r_n_o to EDOM when a NaN is
used as an argument. A NaN argument usually causes the -_l_m_4_3 versions to
return the same argument. The -_l_m_4_3 versions never set _e_r_r_n_o.
If _x is negative, the _s_q_r_t functions return a quiet NaN. The -_l_m and
-_l_m_4_3 versions also set the flag in the floating-point coprocessor to
indicate an invalid operation. The functions in the standard math library
-_l_m and in library -_l_m_x also set _e_r_r_n_o to EDOM.
See matherr(3M) for a description of error handling for -_l_m_x functions.
NNNNOOOOTTTTEEEESSSS
Long double operations on this system are only supported in round to
nearest rounding mode (the default). The system must be in round to
nearest rounding mode when calling any of the long double functions, or
PPPPaaaaggggeeee 1111
SSSSQQQQRRRRTTTT((((3333MMMM)))) SSSSQQQQRRRRTTTT((((3333MMMM))))
incorrect answers will result.
Users concerned with portability to other computer systems should note
that the long double and float versions of these functions are optional
according to the ANSI C Programming Language Specification ISO/IEC 9899 :
1990 (E).
Long double functions have been renamed to be compliant with the ANSI-C
standard, however to be backward compatible, they may still be called
with the double precision function name prefixed with a q.
User's code which calls sqrt() or sqrtf() will be compiled into the
machine instruction sqrt.d or sqrt.s if the code #includes <math.h>.
EEEERRRRRRRROOOORRRR ((((dddduuuueeee ttttoooo RRRRoooouuuunnnnddddooooffffffff eeeettttcccc....))))
_c_b_r_t is accurate to within 0.7 _u_l_ps.
lllliiiibbbbmmmm....aaaa _s_q_r_t conforms to IEEE 754 and is correctly rounded in accordance
with the rounding mode in force; the error is less than half an _u_l_p in
the default mode (round to nearest).
The lllliiiibbbbffffaaaassssttttmmmm....aaaa _s_q_r_t and _f_s_q_r_t error is a maximum of one _u_l_p. (See
however, the comments regarding -lfastm above.)
An _u_l_p is one _Unit in the _Last _Place carried.
SSSSEEEEEEEE AAAALLLLSSSSOOOO
math(3M), libmx(3M)
AAAAUUUUTTTTHHHHOOOORRRR
W. Kahan
PPPPaaaaggggeeee 2222